package Day003_多态_内部类.demo007匿名内部类;

/*
    匿名内部类:(针对抽象类,简化代码)
            概述: 本质是一个继承了父类或者实现了接口的 匿名子类 的对象

            作用: 其实匿名内部类没有什么特殊功能,就是为了简化代码而存在
                 可以不用创建一个类的子类.

            格式: 父类名/父接口名  对象名  =  new  父类名/父接口名 (){
                         重写方法
                   };


            案例:    Animal抽象类中,有一个 eat 抽象方法,现在需要在main方法中调用eat
                    1.创建子类 继承Animal
                    2.在子类中重写方法
                    3.在mian方法中创建子类对象
                    4.使用子类对象调用eat方法
 */

public class Test {
    public static void main(String[] args) {
        //以前,创建子类对象 再调用方法
        Animal anl = new Dog(); //anl被赋值的是Animal类的子类对象
        anl.eat();

        //匿名内部类的方式
        Animal anl2 = new Animal() {
            @Override
            public void eat() {
                System.out.println("匿名内部类...");
            }
        }; //等号右边:Animal类子类对象 这个子类是匿名的
        anl2.eat();
    }
}
